import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { ProductDetailQuery, ProductDetailVO } from './types';

/**
 * 查询商品详情列表
 * @param query 查询参数
 * @returns 商品详情列表
 */
export function listProductDetail(query: ProductDetailQuery): AxiosPromise<ProductDetailVO[]> {
  return request({
    url: '/product/detail/list',
    method: 'get',
    params: query
  });
}

/**
 * 获取商品详情详细信息
 * @param id 商品详情ID
 * @returns 商品详情信息
 */
export function getProductDetail(id: number): AxiosPromise<ProductDetailVO> {
  return request({
    url: '/product/detail/' + id,
    method: 'get'
  });
}


/**
 * 获取商品详情详细信息根据商品ID
 * @param id 商品详情ID
 * @returns 商品详情信息
 */
export function getProductDetailByProductId(id: number): AxiosPromise<ProductDetailVO> {
  return request({
    url: '/product/detail/byProductId/' + id,
    method: 'get'
  });
}

/**
 * 新增商品详情
 * @param data 商品详情信息
 * @returns 结果
 */
export function addProductDetail(data: ProductDetailVO): AxiosPromise<number> {
  return request({
    url: '/product/detail',
    method: 'post',
    data: data
  });
}

/**
 * 修改商品详情
 * @param data 商品详情信息
 * @returns 结果
 */
export function updateProductDetail(data: ProductDetailVO): AxiosPromise<number> {
  return request({
    url: '/product/detail',
    method: 'put',
    data: data
  });
}

/**
 * 删除商品详情
 * @param ids 商品详情ID数组
 * @returns 结果
 */
export function delProductDetail(ids: number[]): AxiosPromise<number> {
  return request({
    url: '/product/detail/' + ids,
    method: 'delete'
  });
}
